﻿#include <iostream>
#include "unorderedMap.h"
#include "unorderedSet.h"

//using namespace std;
//using namespace hash_table;
//using namespace hash;

//int main()
//{
//	Hash<string, string> hash;
//	//int a[] = { 19,30,5,36,13,20,21,12 };
//	string a[] = { "aaa","666","ccc" };
//	for (string aaa : a)
//	{
//		hash.insert({ aaa,aaa });
//	}
//	//hash.insert({ 15,15 });
//	hash.insert({ "123","123" });
//	int iii = 0;
//
//	HashNode<string,string>* rem = hash.find("666");
//	if (rem != nullptr)
//	{
//		cout << rem->_data.second<<endl;
//	}
//	else {
//		cout << "不存在" << endl;
//	}
//	hash.erase("666");
//	rem = hash.find("666");
//	if (rem != nullptr)
//	{
//		cout << rem->_data.second << endl;
//	}
//	else {
//		cout << "不存在" << endl;
//	}
//	return 0;
//}

//int main()
//{
//	Hash<string,string> hash;
//	//int a[] = { 19, 30, 5, 36, 13, 20, 21, 12, 24, 96 };
//	string a[] = { "aaa","666","ccc" };
//	for (auto aaa : a)
//	{
//		hash.insert({ aaa,aaa});
//	}
//	//hash.insert({ 100,100 });
//	/*hash.insert({ 200,200 });*/
//	cout<<hash.find("aaa")->_data.first << ":" << hash.find("aaa")->_data.second << endl;
//	cout<< hash.erase("aaa")<<endl;
//	//cout << hash.find(96)->_data.first << ":" << hash.find(96)->_data.second << endl;
//	if (hash.find("aaa"))
//	{
//		cout << hash.find("aaa")->_data.first << ":" << hash.find("aaa")->_data.second << endl;
//
//	}
//	else {
//		cout << "没找到";
//	}
//
//}

using namespace zzzyh;

//void printHash(unordered_set<int> & set)
//{
//	for (int i : set)
//	{
//		cout << i << endl;
//	}
//}
//
//int main()
//{
//	unordered_set<int> set;
//	int a[] = { 1,2,3,4,6,7,8,9,0,10 };
//	for (int i : a)
//	{
//		set.insert(i);
//	}
//	int i = 0;
//	set.insert(11);
//	//unordered_map<string, int> map;
//	unordered_set<int>::iterator beg = set.begin();
//	while (beg != set.end())
//	{
//		cout << *beg << endl;
//		++beg;
//	}
//
//	for (int i : set)
//	{
//		cout << i << endl;
//
//	}
//	//printHash(set);
//	return 0;
//}

//int main()
//{
//	unordered_map<string, int> map;
//	map.insert({ "aaa",1 });
//	map.insert({ "字符串",3 });
//	map.insert({ "sfdg",5 });
//	map.insert({ "sdfga",3 });
//	map.insert({ "asfgs",6 });
//	map.insert({ "sgfaa",5 });
//	map.insert({ "adghja",43 });
//	map.insert({ "afjgha",2 });
//	map.insert({ "ryua",6 });
//	map.insert({ "wyt",3 });
//	map.insert({ "dhgdg",2 });
//
//	int i = 0;
//	map.insert({ "asdfh",2 });
//	unordered_map<string, int>::iterator beg = map.begin();
//	while (beg != map.end())
//	{
//		beg->second = 123;
//		//cout << a.first << ":" << a.second << endl;
//		++beg;
//	}
//	for (auto a : map)
//	{
//		cout << a.first << ":" << a.second << endl;
//	}
//	
//	return 0;
//}

void test_map()
{
	unordered_map<string, string> dict;
	dict.insert({ "sort", "排序" });
	dict.insert({ "left", "左边" });
	dict.insert({ "right", "右边" });
	dict["left"] = "左边，剩余";
	dict["insert"] = "插⼊";
	dict["string"];
	unordered_map<string, string>::iterator it = dict.begin();
	while (it != dict.end())
	{
		// 不能修改first，可以修改second
		//it->first += 'x';
		it->second += 'x';
		cout << it->first << ":" << it->second << endl;
		++it;
	} cout << endl;
}

int main()
{
	test_map();
}